#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//枚举成员的初始化: 如果第一个成员没有初始化，则第一个成员的值为0，往后的每一个成员的值依次+1，直至列举完成或者某个成员进行了赋值，
//               则以被赋值为基准往后成员继续依次+1
enum enum1 {
    a, // a == 0
    b, // b == 1
    c = 100, // c == 100
    d, // d == 101
    e = 10, // e == 10
    f // f == 11
};

//使用宏定义实现
#define JAN 0;
#define FEB 1;
#define MARCH 2;

/**
 * 枚举——将所有的成员一一列举
 *
 * 定义:
 *  enum 类型名
 *  {
 *      成员1,
 *      ···
 *      成员n
 *  };
 * TIPS:成员的前面不需要声明数据类型，只需要写成员名称即可。
 *
 */
int main() {
    printf("枚举中的每一个成员的初始化值:%d %d %d %d %d %d\n", a, b, c, d, e, f);
    //使用枚举实现可读性较强的对应月份
    enum MONTH {
        Jan,
        Feb,
        March
    };
    //实际用途:为了有更强的可读性
    int mon[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    printf("打算获取某个月份的天数:%d\n", mon[Jan]);
    return 0;

}